
//TODO a(44)
function a44(module, exports, a) {
    var i = a(23), s = a(3), r = a(21), n = function (e) {
        this.baseVideo = e
    };
    s.extend(n, i);
    var o = {
        init: function () {
            this.playerData = this.manager.playerData, this.preparePlayTimeout = null;
            var e = ["webkitendfullscreen", "canplaythrough", "stalled", "play", "playing", "pause", "waiting", "seeking", "seeked", "progress", "canplay", "ended", "durationchange", "loadstart", "loadeddata", "loadedmetadata", "timeupdate", "error"];
            this.manager.listener.on(r.IS_AD, function (t, a) {
                a ? s.each.call(this, e, function (e, t) {
                        this.manager.evt.on(t, this.onVideoEvent, this)
                    }) : s.each.call(this, e, function (e, t) {
                        this.manager.evt.off(t, this.onVideoEvent, this)
                    })
            }, this)
        }, onVideoEvent: function (e) {
            this.baseVideo.eventPublicHandle(e.type), this.manager.evt.trigger("ad_" + e.type)
        }, setSrc: function (e) {
            this.baseVideo.setSrc(e)
        }, getSrc: function () {
            return this.baseVideo.getSrc()
        }, play: function () {
            this.baseVideo.play()
        }, replay: function () {
            this.baseVideo.play()
        }, pause: function () {
            this.baseVideo.pause()
        }, seek: function (e) {
            this.baseVideo.seek(e)
        }, getCurrentTime: function () {
            return this.baseVideo.getCurrentTime()
        }, getBuffered: function () {
            for (var e = this.baseVideo.getBuffered(), t = this.getCurrentTime(), a = 0, i = e.length; a < i; a++)if (e[a].end - t >= 0)return e[a].end
        }, getDuration: function () {
            return this.baseVideo.getDuration()
        }, release: function () {
        }, changeFullScreen: function (e) {
            this.baseVideo.changeFullScreen(e)
        }
    };
    s.merge(n.prototype, o), module.exports = n
}

